The automatic testing of an application may be performed to generate information relating to defects within the application. This information may be used by application developers to improve the application. However, according to current techniques, it is difficult for application developers to determine the root causes of such defects within an application. Application developers may attempt to build the exact environment, or perform the exact scenario, described in a defect description, or may attempt to debug the application code step by step in order to understand the root cause of a defect. However, this process may become very costly and time-consuming when the scenario to be reproduced extends over a long time period. In addition, this process may become very costly and time-consuming when the environment is not trivial, e.g., when the testing is not performed on a clean machine, meaning that a developer has to run many steps in order to bring the application to a desired starting point.